#pragma once

#ifndef _PLATFORM_H_
#define _PLATFORM_H_

#if !defined(_WIN32_WINNT)
#define _WIN32_WINNT 0x0600
#endif

#if defined(_DEBUG)
#include <crtdbg.h>
#endif

#if defined(_WIN32) && !defined(WIN32)
#define WIN32
#endif
#if defined(_WIN64) && !defined(WIN64)
#define WIN64
#endif

// Include standard CRT headers used almost everywhere.
#include <stdlib.h>
#include <stddef.h>
#include <stdarg.h>

#define DLL_EXPORT __declspec(dllexport)
#define DLL_IMPORT __declspec(dllimport)

#if defined(WIN32) && !defined(WIN64)
#include "Win32specific.h"
#endif

#if defined(WIN64)
#include "Win64specific.h"
#endif

#include <stdio.h>

// Include most commonly used STL headers
// They end up in precompiled header and make compilation faster.
#include <memory>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <algorithm>
#include <functional>

#endif//_PLATFORM_H_